Rust のビルドターゲットを WASM にしてビルドする
rustup target list で WASM をビルドターゲットとして指定できるかチェックする
code:sh
$ rustup target list
aarch64-apple-darwin (installed)
...
# WASM に関するアーキテクチャ
wasm32-unknown-emscripten
wasm32-unknown-unknown (installed)
wasm32-wasi
wasm32-wasip1
wasm32-wasip1-threads
...
上記のアーキテクチャであればどれでも WASM ファイルとして生成されるっぽい radish-miyazaki.icon 違い
wasm32-unknown-emscripten: Emscripten を使って WASM にコンパイルする wasm32-unknown-unknown: 環境に対する前提を持たない最小限のターゲット
wasm32-wasi: WASI をターゲットしたビルド wasm32-wasip1: WASI のバージョン Preview1 に対応したターゲット wasm32-wasip1-threads: wasi-wasip1 にスレッドサポートを追加したターゲット
使用したいビルドターゲットに installed が付いていない場合、rustup target add で追加できる
code:sh
$ rustup target add wasm32-wasip1
info: downloading component 'rust-std' for 'wasm32-wasip1'
info: installing component 'rust-std' for 'wasm32-wasip1'
再度 rustup target list を実行する
code:sh
$ rustup target list
...
wasm32-wasip1 (installed)
...
cargo build の --target オプションで WASM のアーキテクチャを指定する
code:sh
$ cargo build --target wasm32-wasip1
成果物: ./target/wasm32-wasip1/release/hello-world.wasm